package com.sinog.biz.service.business;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sinog.core.model.UploadAppendixFile;
import com.sinog.core.model.ZcwjInfo;
import com.sinog.core.utilbean.Result;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @desc 安帮工作资源管理 - 安帮资料信息管理 - 政策文件 - ZcwjService
 * @author zhangcb
 * @date -
 */
@RestController
public interface ZcwjService {

    /**
     * 安帮工作资源管理 - 安帮资料信息管理 - 政策文件 - 首页列表
     * @param departId departId
     * @param level level
     * @param account account
     * @param username username
     * @return List<HashMap < String,Object>>
     */
    @GetMapping("basic/syzcwj")
    List<HashMap<String,Object>> getSyZcwjList(
            @RequestParam("departId") String departId,
            @RequestParam("level") String level,
            @RequestParam("account") String account,@RequestParam("username") String username);

    /**
     * 安帮工作资源管理 - 安帮资料信息管理 - 政策文件 - 列表
     * @param pageIndex pageIndex
     * @param pageSize pageSize
     * @param mapkey mapkey
     * @return Page<Map < String,String>>
     */
    @RequestMapping("/azbj/abzlzxxgl/zcwjInfo/list")
    Page<Map<String,String>> getZcwjInfoList(
            @RequestParam("pageIndex") Integer pageIndex,
            @RequestParam("pageSize") Integer pageSize,@RequestParam Map<String,Object> mapkey);

    /**
     * 安帮工作资源管理 - 安帮资料信息管理 - 政策文件 - （修改/新增）
     * @param data data
     * @return boolean
     */
    @PostMapping("/azbj/abzlzxxgl/zcwjInfo/save")
    boolean saveZcwjInfo(@RequestBody String data);

    /**
     * 安帮工作资源管理 - 安帮资料信息管理 - 政策文件 - 删除
     * @param id id
     * @return boolean
     */
    @DeleteMapping("/azbj/abzlzxxgl/zcwjInfo/delete/{id}")
    boolean deleteZcwjInfo(@PathVariable("id") String id);

    /**
     * 安帮工作资源管理 - 安帮资料信息管理 - 政策文件 - 获取附件list数据
     * @param map map
     * @return List<UploadAppendixFile>
     */
    @RequestMapping("/azbj/abzlzxxgl/zcwjInfo/getFilesListdata")
    List<UploadAppendixFile> getFilesListdata(@RequestParam Map<String,Object> map);

    /**
     * 安帮工作资源管理 - 安帮资料信息管理 - 政策文件 - 获取是否是自己发布的
     * @param map map
     * @return int
     */
    @RequestMapping("/azbj/abzlzxxgl/zcwjInfo/checkIfOwnerPublish")
    int checkIfOwnerPublish(@RequestParam Map<String,Object> map);

    /**
     * 安帮工作资源管理 - 安帮资料信息管理 - 政策文件 - 删除附件
     * @param map map
     * @return int
     */
    @RequestMapping("/azbj/abzlzxxgl/zcwjInfo/deleteFJByid")
    int deleteFjByid(@RequestParam Map<String,Object> map);

    /**
     * 安帮工作资源管理 - 安帮资料信息管理 - 政策文件 - 发布/取消发布
     * @param id id
     * @param stateValue stateValue
     * @return Result
     */
    @RequestMapping("/azbj/abzlzxxgl/zcwjInfo/setfabuState")
    Result setfabuState(@RequestParam("id") String id,@RequestParam("stateValue") String stateValue);

    /**
     * 安帮工作资源管理 - 安帮资料信息管理 - 政策文件 - 获取部级附件list数据
     * @param map map
     * @return List<UploadAppendixFile>
     */
    @RequestMapping("/azbj/abzlzxxgl/zcwjInfo/getBJFilesListdata")
    List<UploadAppendixFile> getBjFilesListdata(@RequestParam Map<String,Object> map);

    /**
     * 安帮工作资源管理 - 安帮资料信息管理 - 政策文件 - mongodb获取政务文件信息
     * @param id id
     * @return ZcwjInfo
     */
    @RequestMapping("/azbj/abzlzxxgl/zcwjInfo/findZcwjById")
    ZcwjInfo findZcwjById(@RequestParam("id") String id);
}